#pragma warning disable IDE1006 // 命名样式

using Newtonsoft.Json;

namespace QNLua.CommonData
{
    public class MapIdQuitHandle
    {
        // 地图id
        [JsonProperty("id")]
        public int Id;

        // 跨服状态 不传或0-不校验跨服状态 1-非跨服 2-跨服
        [JsonProperty("crossServer")]
        public int? CrossServer;

        // 退出时打开 `通用弹窗提示` 的内容。 默认 string.fomart("您是否确认要退出%s", mapName) （QNWindowManager.openTiShiWindow 调用时的 content 参数）  {mapName} 会被替换成 地图名
        [JsonProperty("tipContent")]
        public string? TipContent;

        // 退出时打开 `通用弹窗提示` 确定按钮的文本 默认 "退出"（QNWindowManager.openTiShiWindow 调用时的 confirmText 参数）  {mapName} 会被替换成 地图名
        [JsonProperty("tipConfirmText")]
        public string? TipConfirmText;

    }

    public class MapTypeQuitHandle
    {
        // 地图类型
        public int type;

        // 跨服状态 不传或0-不校验跨服状态 1-非跨服 2-跨服
        [JsonProperty("crossServer")]
        public int? CrossServer;

        // 退出时打开 `通用弹窗提示` 的标题
        [JsonProperty("tipTitle")]
        public string? TipTitle;

        // 退出时打开 `通用弹窗提示` 的内容。 默认 string.fomart("您是否确认要退出%s", mapName) （QNWindowManager.openTiShiWindow 调用时的 content 参数）  {mapName} 会被替换成 地图名
        [JsonProperty("tipContent")]
        public string? TipContent;

        // 退出时打开 `通用弹窗提示` 确定按钮的文本 默认 "退出"（QNWindowManager.openTiShiWindow 调用时的 confirmText 参数）  {mapName} 会被替换成 地图名
        [JsonProperty("tipConfirmText")]
        public string? TipConfirmText;

        // 退出时打开 `通用弹窗提示` 取消
        [JsonProperty("tipCancelText")]
        public string? TipCancelText;

    }

    public class QuitHandleOption
    {
        // 【可选】按照地图id提示
        [JsonProperty("mapIds")]
        public List<MapIdQuitHandle>? MapIds;

        // 【可选】按照地图类型提示
        [JsonProperty("mapTypes")]
        public List<MapTypeQuitHandle>? MapTypes;

        // 【可选】退出时事件
        [JsonProperty("event")]
        public EventMustHasScriptIdOption? Event;
    }

    public class QuitHandleParams : LuaCommonDataParams
    {
        public QuitHandleOption option { get; set; }

    }
}
